package com.ccys.db.vo.doctor.patientHistory;

import com.ccys.db.vo.app.callStandByScreen.DeliveryFeeDetailMakeVo;
import com.ccys.db.vo.app.callStandByScreen.MedicalServiceMakeVo;
import com.ccys.db.vo.app.callStandByScreen.PharmacyMakeVo;
import com.ccys.db.vo.app.callStandByScreen.PrescriptionMakeVo;
import com.ccys.db.vo.app.launchingTheApp.LockedPatientInfoMakeVo;
import com.ccys.db.vo.app.launchingTheApp.PartnerCompanyMakeVo;
import com.ccys.db.vo.app.launchingTheApp.TaxMakeVo;
import com.ccys.db.vo.app.splashscreen.AllergiesMakeVo;
import com.ccys.db.vo.app.splashscreen.MedicationReactionsMakeVo;
import com.ccys.db.vo.doctor.flag.FlagPatientMakeVo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @program: WhiteCoat
 * @description: 医生端GetBookingDetail返回Vo
 * @author: ZhangJingCan
 * @create: 2024-02-22 14:34
 **/

@Data
public class DoctorGetBookingDetailVo {

    /**
     * 预约 ID
     */
    @JsonProperty("id")
    private String id;

    //代码中需要使用
    private String memberId;
    //代码中需要使用
    private String doctorId;

    /**
     * 电子邮件
     */
    @JsonProperty("email")
    private String email;

    /**
     * 编码
     */
    @JsonProperty("code")
    private String code;

    /**
     * 创建时间
     */
    @JsonProperty("created_on")
    private Date createdOn;

    /**
     * 年龄
     */
    @JsonProperty("age")
    private Integer age;

    /**
     * 状态
     */
    @JsonProperty("status")
    private String status;

    /**
     * 状态值
     */
    @JsonProperty("status_value")
    private Integer statusValue;

    /**
     * 子状态
     */
    @JsonProperty("sub_status")
    private String subStatus = "";

    /**
     * 预约医生是否完成
     */
    @JsonProperty("booking_doctor_is_completed")
    private Boolean bookingDoctorIsCompleted;

    /**
     * 子状态值
     */
    @JsonProperty("sub_status_value")
    private Integer subStatusValue;

    /**
     * 随访编码
     */
    @JsonProperty("follow_up_code")
    private String followUpCode;

    /**
     * 随访创建时间
     */
    @JsonProperty("follow_created_on")
    private Date followCreatedOn;

    /**
     * 随访时区创建时间
     */
    @JsonProperty("follow_timezone_created_on")
    private Date followTimezoneCreatedOn;

    /**
     * 随访时区
     */
    @JsonProperty("follow_timezone")
    private String followTimezone;

    /**
     * 随访诊断
     */
    @JsonProperty("follow_diagnosis")
    private String followDiagnosis;

    /**
     * 类型
     */
    @JsonProperty("type")
    private String type;

    /**
     * AIA 标识符是否已检查
     */
    @JsonProperty("aia_identifier_checked")
    private Boolean aiaIdentifierChecked;

    /**
     * Deeplink 名称
     */
    @JsonProperty("deeplink_name")
    private String deeplinkName;

    /**
     * 备忘录邮件
     */
    @JsonProperty("memo_email")
    private String memoEmail;

    /**
     * 日志日期
     */
    @JsonProperty("log_date")
    private Date logDate;

    /**
     * 是否预约
     */
    @JsonProperty("is_appointment")
    private String isAppointment;

    /**
     * 预约类型
     */
    @JsonProperty("appointment_type")
    private String appointmentType;

    /**
     * 预约时间
     */
    @JsonProperty("appointment_time")
    private Date appointmentTime;

    /**
     * 预约结束时间
     */
    @JsonProperty("appointment_end_time")
    private String appointmentEndTime;

    /**
     * 是否 VIP 对方表名：tbl_Member_Vip 我们目前没有 - 直接写死false
     */
    @JsonProperty("is_vip")
    private Boolean isVip = false;

    /**
     * 患者居住国家
     */
    @JsonProperty("patient_country_of_residence")
    private String patientCountryOfResidence;

    /**
     * 医生居住国家
     */
    @JsonProperty("doctor_country_of_residence")
    private String doctorCountryOfResidence;

    /**
     * 国家启用备注 我们country表没有这个enable_remark字段了，这里直接写死true
     */
    @JsonProperty("country_enable_remark")
    private Boolean countryEnableRemark = true;

    /**
     * 是否填写预约
     */
    @JsonProperty("is_filled_booking")
    private Boolean isFilledBooking;

    /**
     * 患者体重
     */
    @JsonProperty("patient_weight")
    private BigDecimal patientWeight;

    /**
     * 患者身高
     */
    @JsonProperty("patient_height")
    private BigDecimal patientHeight;

    /**
     * 患者体温
     */
    @JsonProperty("patient_temp")
    private BigDecimal patientTemp;

    /**
     * 患者血压1
     */
    @JsonProperty("patient_bp1")
    private BigDecimal patientBp1;

    /**
     * 患者血压2
     */
    @JsonProperty("patient_bp2")
    private BigDecimal patientBp2;

    /**
     * 患者心率
     */
    @JsonProperty("patient_hr")
    private BigDecimal patientHr;

    /**
     * 备忘录摘要
     */
    @JsonProperty("mem_summary")
    private String memSummary;

    /**
     * 是否检查添加过敏
     */
    @JsonProperty("is_checked_add_allergy")
    private Boolean isCheckedAddAllergy;

    /**
     * 是否检查添加长期
     */
    @JsonProperty("is_checked_add_longterm")
    private Boolean isCheckedAddLongterm;

    /**
     * 诊断允许患者索赔
     */
    @JsonProperty("diagnosis_allow_patient_to_claim")
    private Boolean diagnosisAllowPatientToClaim;

    /**
     * 预约咨询类型
     */
    @JsonProperty("booking_consultation_type")
    private String bookingConsultationType;

    /**
     * 咨询类型
     */
    @JsonProperty("consultation_type")
    private String consultationType;

    /**
     * 是否豁免咨询费
     */
    @JsonProperty("is_waive_consultation_fee")
    private Boolean isWaiveConsultationFee;

    /**
     * 豁免咨询费
     */
    @JsonProperty("waive_consultation_fee")
    private BigDecimal waiveConsultationFee;

    /**
     * 是否豁免交付费
     */
    @JsonProperty("is_waive_delivery_fee")
    private Boolean isWaiveDeliveryFee;

    /**
     * 是否豁免药物费
     */
    @JsonProperty("is_waive_medication_fee")
    private Boolean isWaiveMedicationFee;

    /**
     * 豁免药物费
     */
    @JsonProperty("waive_medication_fee")
    private BigDecimal waiveMedicationFee;

    /**
     * 是否豁免实践费
     */
    @JsonProperty("is_waive_practice_fee")
    private Boolean isWaivePracticeFee;

    /**
     * 预约豁免药物原因
     */
    @JsonProperty("booking_waive_medication_reason")
    private String bookingWaiveMedicationReason;

    /**
     * 预约豁免实践原因
     */
    @JsonProperty("booking_waive_practice_reason")
    private String bookingWaivePracticeReason;

    /**
     * 预约诊所 ID
     */
    @JsonProperty("booking_clinic_id")
    private String bookingClinicId;

    /**
     * 预约需要医疗信件
     */
    @JsonProperty("booking_need_medical_letter")
    private Boolean bookingNeedMedicalLetter;

    /**
     * 预约需要医疗证明
     */
    @JsonProperty("booking_need_medical_certification")
    private Boolean bookingNeedMedicalCertification;

    /**
     * 豁免交付原因
     */
    @JsonProperty("waive_delivery_reason")
    private String waiveDeliveryReason;

    /**
     * AIA 公司 ID
     */
    @JsonProperty("aia_corporate_id")
    private String aiaCorporateId;

    /**
     * LTRIA 公司 ID
     */
    @JsonProperty("ltria_corporate_id")
    private String ltriaCorporateId;

    /**
     * 直接公司福利 ID
     */
    @JsonProperty("direct_corporate_benefit_id")
    private String directCorporateBenefitId;

    /**
     * 订阅套餐福利 ID
     */
    @JsonProperty("subscription_package_benefit_id")
    private String subscriptionPackageBenefitId;

    /**
     * 咨询费用列表 todo - 不明确
     */
    @JsonProperty("consult_charges")
    private List<ConsultChargesMakeVo> consultCharges;

    /**
     * 子办事处名称 tbl_member_aia_corporate 表里面的suboffname
     */
    @JsonProperty("suboffname")
    private String suboffname;

    /**
     * 是否对保险豁免交付
     */
    @JsonProperty("waive_delivery_for_insurance")
    private Boolean waiveDeliveryForInsurance;

    /**
     * 是否对保险豁免实践费   todo 目前的取用可能有问题
     */
    @JsonProperty("waive_practice_for_insurance")
    private Boolean waivePracticeForInsurance;

    /**
     * 是否对保险豁免药物费 todo 目前的取用可能有问题
     */
    @JsonProperty("waive_medication_for_insurance")
    private Boolean waiveMedicationForInsurance;

    /**
     * 是否对保险豁免咨询费 todo 不知道
     */
    @JsonProperty("waive_consult_for_insurance")
    private Boolean waiveConsultForInsurance;

    /**
     * 豁免咨询原因
     */
    @JsonProperty("waive_consultation_reason")
    private String waiveConsultationReason;

    /**
     * 总咨询费用
     */
    @JsonProperty("total_cost_consulation")
    private BigDecimal totalCostConsulation;

    /**
     * 打折后总咨询费用 todo 先跳过 - 后续做一个收费的完整的
     */
    @JsonProperty("total_cost_consulation_after_discount")
    private BigDecimal totalCostConsulationAfterDiscount;

    /**
     * 附加费
     */
    @JsonProperty("surcharge_fee")
    private BigDecimal surchargeFee;

    /**
     * 医生名
     */
    @JsonProperty("doctor_first_name")
    private String doctorFirstName;

    /**
     * 医生姓
     */
    @JsonProperty("doctor_last_name")
    private String doctorLastName;

    /**
     * 豁免咨询费类型
     */
    @JsonProperty("waive_consultation_fee_type")
    private Integer waiveConsultationFeeType;

    /**
     * 医生类型
     */
    @JsonProperty("panel_type")
    private Integer panelType;

    /**
     * 总处方费用 fee表的prescription_fee
     */
    @JsonProperty("total_cost_prescription")
    private BigDecimal totalCostPrescription;

    /**
     * 交付费 fee表的delivery_fee
     */
    @JsonProperty("delivery_fee")
    private BigDecimal deliveryFee;


    /**
     * 合作伙伴公司信息
     */
    @JsonProperty("partner_company")
    private PartnerCompanyMakeVo partnerCompany;

    /**
     * 医生诊所logo todo 等待临时凭证 以及常量基础路径
     * 对方返回：https://whcapi-qa.whitecoat.global/v1/pub/Component/ViewImage?&acc_type=i3i8jSKmp6o0ity9GBsEOw%3d%3d&acc_id=tVuYCITKLJ1c1O7nGnIMGdhk5ERsLE5P%2fp%2bNub%2bcvFs%2f4mRA5Vwc5c%2fQhGc2%2fBH5&img_type=DcjeOVUCu03dmLLsjjWfVA%3d%3d&latest_update=638442180210000000
     */
    @JsonProperty("doctor_clinic_logo")
    private String doctorClinicLogo;

    /**
     * 送货费用详情
     */
    @JsonProperty("delivery_fee_detail")
    private List<DeliveryFeeDetailMakeVo> deliveryFeeDetail;

    /**
     * 是否收取附加费
     */
    @JsonProperty("is_surcharge_fee")
    private Boolean isSurchargeFee;

    /**
     * 执行费用
     */
    @JsonProperty("practice_fee")
    private BigDecimal practiceFee;

    /**
     * 总计
     */
    @JsonProperty("grand_total")
    private BigDecimal grandTotal;

    /**
     * 税务信息
     */
    private TaxMakeVo tax;

    /**
     * 总计包括税费
     */
    @JsonProperty("grand_total_included_tax")
    private BigDecimal grandTotalIncludedTax;

    /**
     * 总支付金额
     */
    @JsonProperty("grand_total_payment")
    private BigDecimal grandTotalPayment;

    /**
     * 顾问开始日期
     */
    @JsonProperty("consultant_begin_date")
    private Date consultantBeginDate;

    /**
     * 顾问结束日期
     */
    @JsonProperty("consultant_end_date")
    private Date consultantEndDate;

    /**
     * 需要医学信函
     */
    @JsonProperty("need_medical_letter")
    private Boolean needMedicalLetter;

    /**
     * 医学信函编码
     */
    @JsonProperty("medical_letter_code")
    private String medicalLetterCode;

    /**
     * 医学信函 todo 比较麻烦 直接给空字符串
     */
    @JsonProperty("medical_letter")
    private String medicalLetter = "";

    /**
     * 需要医学认证
     */
    @JsonProperty("need_medical_certification")
    private Boolean needMedicalCertification;

    /**
     * 医学认证编码
     */
    @JsonProperty("medical_certification_code")
    private String medicalCertificationCode;

    /**
     * 医学认证开始日期
     */
    @JsonProperty("medical_certification_begin_date")
    private Date medicalCertificationBeginDate;

    /**
     * 医学认证结束日期
     */
    @JsonProperty("medical_certification_end_date")
    private Date medicalCertificationEndDate;

    /**
     * 医学认证附加说明
     */
    @JsonProperty("medical_certification_additional_note")
    private String medicalCertificationAdditionalNote;

    /**
     * 诊断
     */
    private String diagnosis;

    /**
     * 诊断（HTML格式） todo
     */
    @JsonProperty("diagnosis_html")
    private String diagnosisHtml;

    /**
     * 诊断翻译
     */
    @JsonProperty("diagnosis_trans")
    private String diagnosisTrans;//代码中翻译

    /**
     * 取消理由ID
     */
    @JsonProperty("flag_patient_id")
    private String flagPatientId;

    /**
     * 患者备注
     */
    @JsonProperty("flag_patient_note")
    private String flagPatientNote;

    /**
     * 现病史
     */
    @JsonProperty("presenting_complaint")
    private String presentingComplaint;

    /**
     * 管理
     */
    private String management;

    /**
     * 给患者的指示
     */
    @JsonProperty("instructions_to_patient")
    private String instructionsToPatient;

    /**
     * Twilio房间 todo 可能有问题，对方：booking_info.twilio_room = booking_info.id + "-" + booking_info.code;
     */
    @JsonProperty("twilio_room")
    private String twilioRoom;

    /**
     * 成员信息
     */
    private DoctorGetBookingDetailMemberVo member;

    /**
     * 二维码 todo 我们booking表没有这个字段
     */
    @JsonProperty("QR_code")
    private String qrCode;

    /**
     * 显示备忘录
     */
    @JsonProperty("show_memo")
    private Boolean showMemo;

    /**
     * 备忘录
     */
    private String memo;

    /**
     * 患者位置
     */
    @JsonProperty("patient_location")
    private String patientLocation;

    /**
     * 患者诊所名称
     */
    @JsonProperty("patient_clinic_name")
    private String patientClinicName;

    /**
     * 患者信息
     */
    private DoctorGetBookingDetailPatientVo patient;

    /**
     * 父母身份信息
     */
    private IdentificationParentVo identificationParent;

    /**
     * 锁定的患者信息
     */
    private LockedPatientInfoMakeVo lockedPatientInfo;

    /**
     * 锁定的子患者信息
     */
    private LockedPatientInfoMakeVo lockedChildInfo;

    /**
     * 排队号码
     */
    @JsonProperty("queue_no")
    private Integer queueNo;

    /**
     * 总会诊
     */
    @JsonProperty("total_consulation")
    private Integer totalConsultation;

    /**
     * 反馈
     */
    private Boolean feedback;

    /**
     * G6PD
     */
    private Boolean G6PD;

    /**
     * 怀孕
     */
    private Boolean pregnant;

    /**
     * AIA会员
     */
    @JsonProperty("aia_member")
    private Boolean aiaMember;

    /**
     * AIA标识符
     */
    @JsonProperty("aia_identifier")
    private String aiaIdentifier;

    /**
     * 专业ID
     */
    @JsonProperty("specialisation_id")
    private Integer specialisationId;

    /**
     * 预约时区
     */
    @JsonProperty("booking_time_zone")
    private String bookingTimeZone;

    /**
     * 转诊
     */
    private List<DoctorGetBookingDetailReferralsVo> referrals;

    /**
     * 送货类型  todo 目前没有字段，后续出新表之后再做
     * 对方的类型对应字符串为：1- Self_collect,2-Deliver,3-Express,else-No Delivery
     *
     */
    @JsonProperty("delivery_type")
    private String deliveryType;

    /**
     * 送货地址
     */
    @JsonProperty("delivery_address")
    private List<DeliveryAddressMakeVo> deliveryAddress;

    /**
     * 药房信息
     */
    @JsonProperty("pharmacy")
    private List<PharmacyMakeVo> pharmacy;

    /**
     * 原因
     */
    private String reason;

    /**
     * 患者等待时间
     */
    @JsonProperty("patient_waited")
    private Integer patientWaited;

    /**
     * 会诊费用
     */
    @JsonProperty("consult_fee")
    private BigDecimal consultFee;

    /**
     * 药物费用
     */
    @JsonProperty("medication_fee")
    private BigDecimal medicationFee;

    /**
     * 公司 todo 应该返对象 没用了 - 不管
     */
    private String corporate;

    /**
     * 订阅 todo 应该返对象 没用了 - 不管
     */
    private String subscription;

    /**
     * 症状
     */
    private List<DoctorGetBookingDetailSymptomsVo> symptoms;

    /**
     * 症状照片 这里经过嵌套查询已经拿到了文件名称
     * 还需要在代码中使用：S3Util.createPresignedGetUrl("文件名称") 返回值为文件的访问路径(路径包含了临时凭证)
     */
    @JsonProperty("symptoms_photos")
    private List<SymptomsPhotosMakeVo> symptomsPhotos;

    /**
     * 药物
     */
    private List<MedicationsMakeVo> medications;

    /**
     * 过敏反应
     */
    private List<AllergiesMakeVo> allergies;

    /**
     * 长期疾病信息
     */
    private List<LongtermsMakeVo> longterms;

    /**
     * 药物反应
     */
    @JsonProperty("medication_reactions")
    private List<MedicationReactionsMakeVo> medicationReactions;

    /**
     * 处方
     */
    private List<PrescriptionMakeVo> prescription;

    /**
     * 医疗服务
     * select t1.id                bookingServiceId,
     *                t2.id                id,
     *                t2.name_admin        nameAdmin,
     *                t2.name_display      nameDisplay,
     *                t1.price             price,
     *                t2.short_description shortDescription,
     *                t2.long_description  longDescription,
     *                t3.`name`            categoryName,
     *                t4.`name`            providerName,
     *                t1.in_exclusion_list isInExclusionList
     *         from tbl_booking_medical_service t1
     *                  left join tbl_medical_service t2 on t1.medical_service_id = t2.id
     *                  left join tbl_medical_category t3 on t2.category_id = t3.id
     *                  left join tbl_supplier t4 on t2.supplier_id = t4.id
     *         where t1.booking_id = #{bookingId}
     *           and t1.package_id is null
     *           and t1.del_flag = 0
     */
    @JsonProperty("medical_service")
    private List<MedicalServiceMakeVo> medicalService;

    /**
     * 产品包
     */
    @JsonProperty("product_packages")
    private List<DoctorGetBookingDetailProductPackagesVo> productPackages;

    /**
     * 上传文件
     */
    @JsonProperty("upload_files")
    private List<UploadFilesMakeVo> uploadFiles;

    /**
     * 患者标记
     */
    @JsonProperty("flag_patient")
    private List<FlagPatientMakeVo> flagPatient;

    /**
     * 专科转诊信 todo 已做，不确定是否正确
     */
    @JsonProperty("specialist_referral_letter_photos")
    private List<SpecialistReferralLetterPhotosMakeVo> specialistReferralLetterPhotos;

    /**
     * 医生准备就绪
     */
    @JsonProperty("is_doctor_ready")
    private Boolean isDoctorReady;

    /**
     * 患者准备就绪
     */
    @JsonProperty("is_patient_ready")
    private Boolean isPatientReady;

    /**
     * 顾问开始聊天日期
     */
    @JsonProperty("consultant_begin_chat_date")
    private Date consultantBeginChatDate;

    /**
     * 是否CDMP分组
     */
    @JsonProperty("is_cdmp_grouping")
    private Integer isCdmpGrouping;

    /**
     * 允许重复预约
     */
    @JsonProperty("allow_recurring_appointment")
    private Integer allowRecurringAppointment;

    /**
     * 允许药物续订
     */
    @JsonProperty("allow_medication_refill")
    private Integer allowMedicationRefill;

    /**
     * 紧急联系人
     */
    @JsonProperty("emergency_contact")
    private EmergencyContactMakeVo emergencyContact;

    /**
     *
     * CDMP条件
     * 对方函数：
     * 			SELECT A.cdmp_program_benefit_id
     * 				, cdmp_program_condition_id
     * 				, B.[name] AS condition_name
     * 				, C.[name] AS package_name
     * 			FROM [tbl_Cdmp_Program_Policies] A
     * 			LEFT JOIN tbl_Cdmp_Program_Condition B ON A.cdmp_program_benefit_id = B.cdmp_program_benefit_id
     * 			LEFT JOIN tbl_Cdmp_Program_Benefit C ON A.cdmp_program_benefit_id = C.cdmp_program_benefit_id
     * 			WHERE (
     * 					A.policy_id = @patientPolicy
     * 					OR (
     *                                                @cdmp_program_benefit_id IS NOT NULL
     * 						AND C.cdmp_program_benefit_id = @cdmp_program_benefit_id
     * 						)
     * 					)
     * 				AND B.[status] = 1
     * 				AND C.[status] = 1
     * 			ORDER BY condition_name
     * 		END
     */
    @JsonProperty("cdmp_conditions")
    private List<CdmpConditionsMakeVo> cdmpConditions;

    /**
     * CDMP条件定价
     * 对方函数：
     * SELECT A.cdmp_program_benefit_id
     * 				, A.cdmp_program_condition_id
     * 				, A.cdmp_program_pricing_id
     * 				, compare_key
     * 				, A.[name]
     * 				, B.[name] AS pricing_name
     * 				, B.price
     * 				, B.price_unit
     * 				, C.payment_frequency
     * 				, C.annual_discount
     * 			FROM tbl_Cdmp_Program_Pricing_Condition A
     * 			LEFT JOIN tbl_Cdmp_Program_Pricing B ON A.cdmp_program_pricing_id = B.cdmp_program_pricing_id
     * 			LEFT JOIN tbl_Cdmp_Program_Benefit C ON A.cdmp_program_benefit_id = C.cdmp_program_benefit_id
     * 			WHERE B.[status] = 1
     * 				AND (
     * 					A.cdmp_program_benefit_id IN (
     * 						SELECT cdmp_program_benefit_id
     * 						FROM tbl_Cdmp_Program_Policies
     * 						WHERE policy_id = @patientPolicy
     * 						)
     * 					OR (
     *                                                @cdmp_program_benefit_id IS NOT NULL
     * 						AND C.cdmp_program_benefit_id = @cdmp_program_benefit_id
     * 						)
     * 					)
     * 		END
     */
    @JsonProperty("cdmp_condition_pricing")
    private List<CdmpConditionPricingMakeVo> cdmpConditionPricing;

    /**
     * CDMP程序效益名称
     */
    @JsonProperty("cdmp_program_benefit_name")
    private String cdmpProgramBenefitName;

    /**
     * CDMP总金额 已做
     */
    @JsonProperty("cdmp_total_amount")
    private BigDecimal cdmpTotalAmount;

    /**
     * 预订CDMP条件
     */
    @JsonProperty("booking_cdmp_condition")
    private List<BookingCdmpConditionMakeVo> bookingCdmpCondition;

    /**
     * CDMP程序效益ID 已做 取的booking的cdmp_program_benefit_id
     */
    @JsonProperty("cdmp_program_benefit_id")
    private String cdmpProgramBenefitId;

    /**
     * CDMP配置名称
     */
    @JsonProperty("cdmp_profile_name")
    private String cdmpProfileName;

    /**
     * CDMP状态 需要tbl_Booking_CdmpPackage表
     */
    @JsonProperty("cdmp_status")
    private Integer cdmpStatus;

    /**
     * 预订选定CDMP条件
     */
    @JsonProperty("booking_selected_cdmp_condition")
    private List<BookingSelectedCdmpConditionMakeVo> bookingSelectedCdmpCondition;

    /**
     * 基本CDMP信息
     */
    @JsonProperty("basic_cdmp_information")
    private String basicCdmpInformation;

    /**
     * 是否CDMP慢性 已做
     */
    @JsonProperty("is_cdmp_chronic")
    private Boolean isCdmpChronic;

    /**
     * 预订选定CDMP套餐
     */
    @JsonProperty("booking_selected_cdmp_package")
    private List<BookingSelectedCdmpPackageMakeVo> bookingSelectedCdmpPackage;

    /**
     * 是否请求上传文件 已做
     */
    @JsonProperty("is_request_upload_file")
    private Boolean isRequestUploadFile;

    /**
     * 服务类型 已做
     */
    @JsonProperty("service_type")
    private Integer serviceType;

    /**
     * 是否PIM 已做
     */
    @JsonProperty("is_pim")
    private Boolean isPim;

    /**
     * 服务类型名称
     */
    @JsonProperty("service_type_name")
    private String serviceTypeName;

    /**
     * 症状进展 todo 未做  tbl_MD_Symptom_Detail 函数都找不到
     * 对方函数：
     *  Select [symptom_detail_value],
     *                    [symptom_detail_type],
     * 				   Cast(IIF(BSymptom.symptom_toggle_value Is NUll,0,1) As Bit) as symptom_detail_is_selected,
     *                    Case When [service_type] = 13 Then 1 Else 0
     * 				   End As [symptom_detail_list_type]
     * 		    From [dbo].[tbl_MD_Symptom_Detail]
     * 			Left Join tbl_Booking_Symptom_Toggles As BSymptom
     * 			On BSymptom.booking_id = @PRM_booking_id
     * 			And BSymptom.symptom_toggle_value Like CONCAT('%',[symptom_detail_value],'%')
     * 			And @is_show_rdb_symptom = 1
     * 		    Where [service_type] = @service_type
     * 		    Order By [symptom_detail_order_by]
     */
    @JsonProperty("progression_of_symptoms")
    private List<ProgressionOfSymptomsMakeVo> progressionOfSymptoms;

    /**
     * 症状频率 todo 和上方一样，只不过用了一个if判断加入哪个集合
     * if (drSymptom["symptom_detail_type"].ToString() == "1")
     *                                 {
     *                                     progression_of_symptoms.Add(itemSymptom);
     *                                 }
     *                                 else if (drSymptom["symptom_detail_type"].ToString() == "2")
     *                                 {
     *                                     frequency_of_symptoms.Add(itemSymptom);
     *                                 }
     */
    @JsonProperty("frequency_of_symptoms")
    private List<ProgressionOfSymptomsMakeVo> frequencyOfSymptoms;


    private String benefitId;

}
